In the past, leading-edge commercial applications with high performance and reliability requirements were typically run on legacy systems, such as Information Management System (IMS). (IMS is a trademark of International Business Machines Corporation in the United States, other countries, or both.). The near universal acceptance of Web Technologies increases the demands for communication-based applications; however, even in today's distributed computing environments with Web based applications, it is very common for the data associated with WEB based applications to be legacy data (i.e. data that is managed by legacy systems, such as IMS). Therefore, many enterprises are faced with the challenge of making core business applications currently running on legacy systems available to the Internet.
IMS is a hierarchical database management system (HDBMS) developed by International Business Machines Corporation with wide spread usage in many large enterprises where high transaction volume, reliability, availability and scalability are of the utmost importance. IMS provides software and interfaces for running the businesses of many of the world's largest corporations. However, companies incorporating IMS databases into their business models typically make significant investments in IMS application programs in order to have IMS perform meaningful data processing particularly tailored to the needs of their respective enterprises. IMS application programs are typically coded in COBOL, PL/I, C, PASCAL, JAVA or assembly language.
In one example, the typical components of a Web based application may comprise an application program to perform particular business logic, a client system including a web browser for entering data and displaying results, a Web server to provide communication and security layers around the customer application, a database adapter to facilitate application communications with a database subsystem for the processing of data requests. A user interfaces with a client system to view and/or process data in accordance with the user's needs and the capabilities provided by the various enterprise applications. This results in the client system's web browser communicating with the Web server component using the HyperText Transfer Protocol (HTTP) over an Internet connection using Transmission Control Protocol/Internet Protocol (TCP/IP). The Web server identifies the appropriate application and schedules this application for execution. Upon receiving control, the application invokes the database adapter to communicate with the database subsystem to handle data requests.
In this environment the application, with respect to the database adapter, is a client and makes data requests to the database adapter for processing by the database subsystem. The application provides buffers to receive the requested data. However, prior to receiving the requested data, the application may not know the size of the requested data to be returned by the database subsystem and accordingly the previously allocated buffer is of an estimated size. If the buffer size is larger than required, then valuable system resources are wasted in that excessive storage is reserved for the application and unavailable to other processes within the system.
However, if the buffer size is insufficient to hold the incoming data, a significant amount of extra processing is required with a corresponding impact to system performance. This extra processing may entail receiving only a portion of the requested data, saving this portion from the application buffer, and then initiating an additional request to the database adapter for the remainder of the requested data. If the buffer is insufficient to receive the entire remaining portion, then the process described supra is repeated until, eventually, the entire data request is satisfied. Alternatively, the buffer could be discarded and a larger buffer of sufficient size allocated, followed by repeating the original request to the database adapter. Either way, significant degradation of system performance and response time delay may result from this extended processing overhead.
In addition to these problems, the programmers developing each application to invoke the database adapter must deal with the complexity of managing buffers in an ambiguous environment entailing unpredictable buffer size requirements. Additional time and effort is required of these programmers to design algorithms and write program instructions that attempt to deal with this complexity and ambiguity. Even after expending much design effort, the ambiguity precludes achieving optimal results.
Accordingly, there is a great need for an enhanced buffer management facility to simplify application development and enhance overall system performance and response time when Web enabling access to legacy data.